import java.util.Scanner;

public class Test {
//    求斐波那契数列的第 N 项
    public static int fib(int n){
        if(n==1 || n == 2)
            return 1;
        return fib(n-1)+fib(n-2);
    }

    public static void main(String[] args) {
        System.out.println(fib(6));
    }


//    写一个递归方法，输入一个非负整数，返回组成它的数字之和. 例如，输入 1729, 则应该返回
//1+7+2+9，它的和是19
    public static int func(int n){
        if(n<10)
            return n;
        return n%10+func(n/10);
    }

    public static void main11(String[] args) {

        System.out.println(func(1729));
    }



//    递归求 1 + 2 + 3 + ... + 10
    public static int sum(int n){
        if(n == 1)
            return 1;
        return n+sum(n-1);
    }

    public static void main10(String[] args) {
        System.out.println(sum(10));
    }



//    3.3 递归练习
//    代码示例1 按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)

public static void print(int n) {
    if(n<10) {
        System.out.println(n);
        return;
    }
    print(n/10);
    System.out.println(n%10);

}

    public static void main9(String[] args) {
        print(1234);
    }



//    递归求n的阶乘
    public static int fac(int n){
        int ret=0;
        if(n==1)
            return 1;
        ret = n*fac(n-1);
        return ret;
    }

    public static void main8(String[] args) {
        System.out.println(fac(5));
    }


////    求1到5的阶乘的和
//    public static int fac(int n){
//        int ret =1;
//        for (int i = 1; i <=n ; i++) {
//            ret *=i;
//        }
//        return ret;
//    }
//
//    public static int facSum(int n){
//        int sum=0;
//        for (int i = 1; i <= n; i++) {
//            sum+=fac(i);
//        }
//        return sum;
//    }
//
//    public static void main(String[] args) {
//        System.out.println(facSum(5));
//    }
    //函数 闰年
    public static boolean isLeapYear(int year){
        if((year % 4 == 0 && year % 100 != 0) || (year % 400 ==0 ))
            return true;
        else
            return false;
    }



//    求最大公约数 24 18
    public static void main7(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();

        int temp = 0;
        if(a<b){
            temp = a;
            a = b;
            b = temp;
        }
        int c  = a%b;
        while(c!=0) {
            a = b;
            b = c;
            c = a%b;
        }
        System.out.println(b);

    }
//    第8题，获取一个数二进制序列中所有的偶数位和奇数位，分别输出二进制序列。
    public static void main6(String[] args) {
        int n = 7;
//        for (int i = 0; i < 32; i+=2) {
//            System.out.print((n>>i)&1);
//        }
//        System.out.println();

        //偶数位序列
        for (int i = 31; i >= 0; i-=2) {
            System.out.print((n>>i)&1);
        }
        System.out.println();

        //奇数位序列
        for (int i = 30; i >= 0; i-=2) {
            System.out.print((n>>i)&1);
        }
        System.out.println();

    }
    //编写程序，模拟三次密码输入的场景
    public static void main5(String[] args) {
        Scanner sc = new Scanner(System.in);
        int count = 3;
        while(count!= 0){
            System.out.println("请输入密码,你还有"+count+"次机会:");
            String in = sc.nextLine();
            if(in.equals("123456")){
                System.out.println("登录成功");
                break;
            }
            else{
                count--;
            }
        }
    }


//    oj练习题
public static void main4(String[] args) {
    Scanner in = new Scanner(System.in);
    while (in.hasNextInt()) {
        int a = in.nextInt();

        for (int i = 0; i < a; i++) {
            for (int j = 0; j < a; j++) {
                if (i == j || i + j == (a - 1))
                    System.out.print("*");

                else
                    System.out.print(" ");
            }
            System.out.println();
        }
    }
}



//    计算
public static void main3(String[] args) {
    double sum = 0;
    int flag = 1;
    for (int i = 1; i <=100 ; i++) {
        sum+=1.0/i*flag;
        flag = -flag;
    }
    System.out.println(sum);
}


//    复习0414习题
//    1到100中有几个含9的数字
    public static void main2(String[] args) {
        int count = 0;
        for (int i = 1; i <= 100 ; i++) {
            if(i%10 == 9)
                count++;
            else if (i / 10 == 9)
                count++;
        }
        System.out.println(count);

    }




//    计算


// 输出123的每一位
    public static void printN(int n){
        if(n < 10)
            System.out.println(n);
        else{
            printN(n/10);
            System.out.println(n%10);
        }
    }

    public static void main1(String[] args){
        printN(123);
    }
}
